Lisp on BEAM. Сравнение подходов реализации Наконец-то дошли руки, вытащил LFE, JOXA и SCM, чтобы сравнить реализации и выбрать кандидата на написание веб страничек на N2O. Транслировать конечно в JavaScript придется окольными путями, т.е. напрямую, а не через Erlang AST, но все равно интересно посмотреть, что там пишут. Даже канал в IRC посвященный эрланго-лиспам #erlang-lisp. JOXA. Lisp-1. Уникальный лисп, полностью самобустрепающийся написан сам на себе, в процессе компиляции jxa файлы транслируются в Erlang Core с помощью cerl. Очень олдскульно, впечатление приятные. Действительно минималистично. Если я буду писать свой лисп я буду делать его по модели основаной на JOXA, зачем только было делать на Erlang Core, а не на Abstract Format для меня загадка. Количество Эрланг кода 700 байт, количество Лисп кода: 250К / 7K LOC. Впринципе если бы вместо Erlang Core был Abstract Format, был бы идеал лиспа для BEAM, чтобы писать начинать писать Clojure. Но можно и так начинать. Очень перспективнный проект, жалко что заброшеный. Писал настоящий тру лиспер. Вызывает зависимость. LFE. Lisp-2, Типа CL испайред. Реализация заметно похуже. Во первых весь коре написан на эрланге, но не так как я пишу компиляторы на 10КБ, а на с широким охватом на пол мегабайта (правда там коментариев много, которых я не люблю). Ну вроде в Abstract Format компилируется, и на эрланге написано, но как-то JOXA ближе все же для меня. А этот LFE просто хороший. Количество кода 10К LOC. Желания развивать проект не вызывает. SCM. Схема. Ужас. МИТ уже не торт. Желания прикоснуться и развивать эту штуку никакого. Вроде дофига есть, но написано так как будто это не лисп, а GHC. Лисп парсается YECC -- этим все сказано. Плюс еще какие-то костыли в виде С++ эрланг драйверов которые там предоствляют доступ к какому-то мутабельному окружению. В ообщем обходите седьмой дорогой. А сайт да красивый. Это даже и не компилятор, в исходниках строки compile:forms вообще не обнаружено. Просто игрушка. Количество эрланг кода 7К LOC / 0.5MB для того чтобы выплнить lisp eval. Бред. ELIXIR. Скажу еще пару слов про Elixir за пределами конкурса. Эликсир компактно написан надо признать. В принципе я теперь понимаю Рашковского, почему он вкладывается в него. Из него можно сделать Scala при желании, но там чуваки далеки от системы типов и в основном сахарои закидываются и таплы мутируют. Весь язык описываются вменяемым YECC файлом, компилируется из Абстракт Формат. В принципе все транформации читаются быстро. Воспринимайте Эликсир как продвинутый парсер трансформ для Эрланга. Возможно я плотнее на него посмортю когда буду писать свой Om: Erlang System Fw. Затягивает. Возможно ближе рассмотрю JOXA и LFE и попробую написать сайтик на них под N2O. Продолжение следует.